package ar.fiuba.tp7552.buildadmin.service;

import java.util.Collection;

import org.springframework.security.access.prepost.PreAuthorize;

import ar.fiuba.tp7552.buildadmin.model.BusinessException;
import ar.fiuba.tp7552.buildadmin.model.auth.User;
import ar.fiuba.tp7552.buildadmin.model.builds.Edificio;

public interface EdificioService {

	@PreAuthorize("hasAnyRole('ROLE_ADMIN','RESP_EDIFICIOS')")
	public void createEdificio(Edificio edificio, User creatorUser) throws BusinessException;
	
	@PreAuthorize("hasPermission(#id, 'ar.fiuba.tp7552.buildadmin.model.builds.Edificio', 'admin')")
	public Edificio get(Long id);
	
	@PreAuthorize("hasRole('ROLE_ADMIN')")
	public void delete(Edificio edificio);
	
	public Collection<Edificio> getAll();
	
	public Collection<Edificio> getAll(PermissionType type);
	
	@PreAuthorize("hasPermission(#edificio, 'admin')")
	public void update(Edificio edificio);
	
}
